GE
423 Mechatronics
Group
4
Joseph
Gaudio, Marc Deetjen, Ting
Liao, Mike Brooks
Figure 1 Team picture (from left
to right): Mike Brooks, Ting Liao, Joseph Gaudio, Marc Deetjen
The
obstacle avoidance method used is a modified bug-0 algorithm. The robot scans the 180 degrees in front
of it using LADAR measurements obtained every 100 milliseconds. If an obstacle is found within the
allowable range of LADAR distances, the robot wall follows on the side of the
present obstacle. The robot follows
this obstacle until the robot is facing the destination once again. After the robot faces the destination,
the robot breaks off from wall following and heads toward the destination. If the robot is in between two obstacles,
the robot wall follows the obstacle which is on the same side of the robot as
the destination. If the robot is in
between the outer boundary of the course and an obstacle, the robot follows the
obstacle solely. If the robot is
close to the outer boundary with no obstacles near it for a set amount of time,
the robot turns in place and faces the destination point.
The
robot picks up golf balls using a designed gripper. The two sides of the gripper are each
actuated with an RC servo. The
gripper arms extend outward. Within
the cage region of the golf ball holding area is a flap. The flap is easily pushed by a golf ball
in the direction of into the cage.
The reverse direction (golf ball leaving the cage) is much more
resistive. This was designed such that
when the gripper doors are open to pick up a golf ball, the golf balls in the
cage do not fall out as the forward relative speeds of the golf balls with
respect to the robot are not great enough to escape the hatch. When the golf balls are ready to be
dropped into the chute, the robot stops in place and opens the gripper door
corresponding to the designated chute.
When the gripper is fully open, the robot then goes full speed
backwards. Given that the speed is
large, the golf balls are released from the cage, overcoming the resistance of
the flap.
The
robot locates the golf balls with a color camera. The robot only looks for the golf balls
when it is inside the boundaries of the course. A golf ball is registered as valid when
a set number of connected pixels is reached. The top pixels of the image are not
processed as they correspond to the ceiling and thus a golf ball would not be
located there. When a golf ball is
found, the robot opens the hatch corresponding to the golf ball color and moves
slowly toward the ball while positioning itself such that the golf ball is
centered with respect to the correct hatch. This is done with a proportional
controller. When the ball is close
enough to the robot to the point where it is about to not be seen by the camera
anymore, the robot stops its positioning, and drives straight for a set amount,
thus putting the golf ball into the cage.
After the ball is put into the cage, the robot stops moving and the gripper
is closed.
Figure 2 Robot
Figure 3 Gripper
Figure 4 Grippers on the robot
The
Matlab code to visualize the robot¡¯s course has a
number of novel additions to the basic requirements. Firstly, instead of using
a mere square or circle to represent the robot¡¯s location, a realistic drawing
of the robot traverses and rotates around the course based on the position and
angle of the actual robot. A trail is left behind to track where the robot has
been on the course. Additionally, the region that the robot has ¡°seen¡± with the
camera is grayed out so that we can visually see which areas the robot has and
has not had the opportunity to spot golf balls. The golf balls that the robot
detects are then plotted on the course. Obstacles are also plotted on the
figure. This is accomplished through complex code utilizing the LADAR
capabilities of the robot. This code filters the LADAR data for noise and
requires a minimum number of samples to verify that an obstacle is present. For
the specific application, it was known that 5 obstacles would be present, so
only the 5 obstacles that were best verified were displayed. This prevents
errant data from making an obstacle appear in the limit of infinite time and
data points being collected. The final result is a visually appealing and
intuitive representation of the course and the progress of the robot.
Figure 5 Matlab display
Robot Performance Video
Thanks for a
Great Semester!